<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
  <meta http-equiv="Content-Type"
 content="text/html; charset=iso-8859-1">
  <title>Eclipse Tools - GEF Project</title>
  <link rel="stylesheet" href="http://dev.eclipse.org/default_style.css"
 type="text/css">
  <style>
<!--
td           {  }
ul           { margin-bottom: 0 }
h4           { margin-bottom: 0 }
h3           { margin-bottom: 2 }
-->
  </style>
</head>
<body>
<table width="709" cellspacing="0" bordercolor="#111111"
 style="border-collapse: collapse;" border="0">
  <tbody>
    <tr>
      <td width="709" colspan="3" valign="top"> <img
 src="../images/gefbanner.jpg?cvsroot=Tools_Project" border="0"><br>
&nbsp;</td>
    </tr>
    </tbody>
</table>
<table border="0" cellpadding="3" cellspacing="0"
 style="border-collapse: collapse;" bordercolor="#111111">
  <tbody>
    <tr>
      <td valign="top" bgcolor="#0070a0"><b> 
      <font face="Arial,Helvetica" color="#ffffff"
 style="font-size: 20pt;">GEF Project<br>
		Initial 3.1 Plan
(Final)</font></b></td>
    </tr>
    <tr>
      <td>
      <br>
		Last revised
		<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%A, %B %d, %Y" startspan -->Friday, July 08, 2005<!--webbot bot="Timestamp" endspan i-checksum="28382" --><ul>
		<li><a href="#deliverables">Release deliverables</a></li>
		<li><a href="#milestones">Release milestones</a></li>
		<li><a href="#targets">Target operating environments</a></li>
		<li><a href="#compatibility">Compatibility with previous releases</a></li>
		<li>Major line-items for this release</li>
		</ul>
		<p>&nbsp;</td>
    </tr>
    <tr>
      <td>
      <h3><a name="deliverables">Release Deliverables</a></h3>
      <ul>
		<li>
		<p dir="ltr">Source code release for Graphical Editing Framework, 
		available as versions tagged &quot;R3_1&quot; in the Eclipse Tools Project
		<a href="http://dev.eclipse.org/viewcvs/index.cgi?cvsroot=Tools_Project">
		CVS repository</a>. 
		</li>
		<li>
		<p dir="ltr">Graphical Editing Framework SDK (includes runtime binary, 
		source code, and ISV documentation) (downloadable).</li>
		<li>Graphical Editing Framework runtime binary (downloadable).</li>
		<li>Graphical Editing Framework Examples and source (downloadable).</li>
		</ul>
      </td>
    </tr>
    <tr>
      <td>
      <h3><a name="milestones">Release Milestones</a></h3>
      <p>Release milestone occurring at roughly 6 week intervals exist to 
		facilitate coarse-grained planning and staging. The milestones are:</p>
		<ul>
			<li>Friday Aug. 13, 2004 - Milestone 1 (3.1 M1) - stable build 
			</li>
			<li>Friday Sep. 24, 2004 - Milestone 2 (3.1 M2) - stable build 
			</li>
			<li>Friday Nov. 5, 2004 - Milestone 3 (3.1 M3) - stable build 
			</li>
			<li>Friday Dec. 17, 2004 - Milestone 4 (3.1 M4) - stable build 
			</li>
			<li>Friday Feb. 18, 2005&nbsp; - Milestone 5 (3.1 M5) - stable build 
			</li>
			<li>Friday Apr. 1, 2005 - Milestone 6 (3.1 M6) - stable build </li>
		</ul>
      </td>
    </tr>
    <tr>
      <td>
      <h3><a name="targets">Target Operating Environments</a></h3>
		<p>GEF 3.1 will support all operating environments supported by the 
		Eclipse Platform itself.&nbsp; For a list of supported environments, 
		refer to the
		<a href="http://www.eclipse.org/eclipse/development/eclipse_project_plan_3_1.html">
		Platform 3.1 plan</a>.</td>
    </tr>
    <tr>
      <td>
      <h3><a name="compatibility">Compatibility of Release 3.1 with 3.0</a></h3>
      <p>GEF 3.1 will be upwards compatible with GEF 3.0 to the
greatest extent possible. We anticipate a small number of areas where
maintaining compatibility would not be in the best interests
of GEF or its clients. All such exceptions will be noted in the 3.1
release notes so that clients can assess the impact of these changes on
their plug-ins and products.</p>
      <p><b>API Contract Compatibility:</b> GEF 3.1 will be upwards
contract-compatible with GEF 3.0 unless noted. This means that programs
in full compliance with contracts specified in 3.0 APIs will
automatically be in full compliance with 3.1 APIs. Refer to <i> <a
 href="http://eclipse.org/eclipse/development/java-api-evolution.html">
Evolving Java-based APIs</a></i> for a discussion of the kinds of API
changes that maintain contract compatibility.</p>
      <p><b>Binary (plug-in) Compatibility:</b> GEF 3.1 will be upwards
binary-compatible with GEF 3.0 unless noted. This means that plug-ins
built for GEF 3.0 will continue to work correctly in 3.1 without
change. Plug-ins with hard-coded references in their plug-in manifest
file to the 3.0 version of GEF plug-ins will work in 3.1 provided the
version match rule is "greaterOrEqual" or "compatible" (the default);
references using "perfect" or "equivalent" match rules will be broken.
Refer to <i> <a
 href="http://eclipse.org/eclipse/development/java-api-evolution.html">
Evolving Java-based APIs</a></i> for a discussion of the kinds of API
changes that maintain binary compatibility.</p>
      <p><b>Source Compatibility:</b> GEF 3.1 will be upwards
source-compatible with GEF 3.0 to the greatest extend possible. This means that source
files written to use 3.0 APIs can often be successfully compiled and run
against GEF 3.1 APIs. Since source incompatibilities are easy to deal
with, maintaining source compatibility is considered much less
important than maintaining contract and binary compatibility.&nbsp; The addition 
		of a single method anywhere could be an incompatible source change.&nbsp; 
		For this reason, source-incompatibilities will not be noted.</p>
      <p><b>Non-compliant usage of API's</b>: All non-API methods and
classes, and certainly everything in a package with "internal" in its
name, are considered implementation details which may vary between
operating environment and are subject to change without notice. Client
plug-ins that directly depend on anything other than what is specified
as API are inherently unsupportable and receive no guarantees about
compatibility within a single release much less with an earlier
releases. Refer to <i> <a
 href="http://www.eclipse.org/articles/Article-API%20use/eclipse-api-usage-rules.html">
How to Use the Eclipse API</a></i> for information about how to write
compliant plug-ins.</p>
      </td>
    </tr>
    <tr>
      <td bgcolor="#0070a0">
      <h3><a name="Features"><font color="#FFFFFF">3.1 Features</font></a></h3>
      </td>
    </tr>
    <tr>
      <td>
		<h4>Committed Items</h4>
		<blockquote>
			<p><b>ShortestPathConnectionRouter.</b> A draw2d connection router 
			which will take advantage of the shortest path routing algorithm 
			introduced in 3.0.&nbsp; Such a router requires layout notification 
			from a container figure defining the obstacles which are being 
			avoided by the router.&nbsp; The router should also support an 
			optional list of user BendPoints. [draw2d]</p>
			<p><b>Constrained horizontal ordering for nodes in a DG.</b>&nbsp; 
			Ability constraint the left-to-right ordering of nodes in a directed 
			graph.&nbsp; If a node has a non-negative constraint, then its LTOR 
			order in a given row will be constrained among other nodes with 
			non-negative constraints.&nbsp; This can be used to guarantee the 
			order of subgraphs or nodes when it has meaning, for example when 
			visually representing a switch statement or exception handling. 
			[draw2d]</p>
			<p dir="ltr"><b>Performance improvements for ConnectionRouter.</b>&nbsp; 
			Connection routers re-route whenever a connection anchor indicates 
			that this is necessary.&nbsp; Currently this occurs too often.&nbsp; 
			We will introduce a new notification for coordinate system changes 
			which will reduce the frequency of connection re-routing. [draw2d]</p>
			<p dir="ltr"><b>EMF based GEF example.</b>&nbsp; An example which 
			uses an EMF model.&nbsp; The example will be an editor for ecore 
			itself, allowing the user to diagram ecore classes and packages 
			visually.&nbsp; The model will be split between business and view 
			data.</p>
			<p dir="ltr"><b>Better and faster horizontal coordinate assignment 
			in DG.</b>&nbsp; Assigning horizontal coordinates to nodes in a 
			directed graph layout is computationally expensive.&nbsp; There is a 
			linear algorithm for directed graphs which produces results of 
			similar quality.&nbsp; The algorithm could probably be extended to 
			compound directed graphs.</p>
			<p dir="ltr"><b>Support for mirroring.</b> All aspects of GEF work 
			properly when displayed in a mirrored (RTL) workbench.</p>
		</blockquote>
		<blockquote>
			<p dir="ltr"><b>WYSIWYG Text Editing.</b>&nbsp; Improved performance 
			and memory requirements for the draw2d text package.&nbsp; Better 
			line breaking behavior. Support for BiDi text spanning across 
			multiple text figures. Support for selection rendering and caret 
			calculations.&nbsp; New example which prototypes textual editing.</p>
			<p dir="ltr"><b>Advanced graphics support.</b> Expose new advanced 
			graphics functionality in SWT in a way consistent with existing 
			graphics features.</p>
		</blockquote>
		</td>
    </tr>
  </tbody>
</table>
</body>
</html>
